Business Data Integration (BDI) is a process where information from one or more sources in various source systems is extracted, mapped together, transformed, cleansed, and presented as targets directly consumable by source-independent business applications. The business applications are not intimately aware of the various source systems. The process of extracting, mapping, and presenting source information to applications that are source-independent is also called Extraction, Transformation and Loading (ETL) in the computer industry. Sources of information may include line of business (LOB) systems or databases that expose information through standard protocols. Sources may also include web-servers that expose data through web-services. A BDI solution is considered to be an ETL process along with targets and business applications that consume the results of the ETL process.
Conventional solutions implement integration of information from disparate sources by writing code explicitly using procedural languages to produce the integration programs. When BDI is implemented using procedural programming techniques, the integration process has to rely on a person (human) who is familiar with the integration program to manually update procedural code. This is obviously not geared towards a business user who is not familiar with programming. References to information use a human-readable-name. Thus, if a piece of information changes, related pieces of information are not guaranteed to be unique and tractable in the system. Source systems, as described above, are outside the influence of business applications that are source-independent. Hence, source information can change without a business application being changed simultaneously. These changes are of numerous kinds, for example a table's schema could change, an API signature could change, or even, new data could be added to a table that is not yet mapped to any business application content or behavior.
Some conventional tools have more declarative ways of implementing integration by using UI-driven tools or other techniques geared towards a non-programmer. These more declarative tools can help users understand how to modify transformation processes when source information changes, but they cannot help determine how to modify the consuming business application's behavior. The more declarative tools also, cannot solve the problem of changing business application requirements and mapping the new requirements to existing source information.